package code08_常用类.String;

import java.util.Arrays;

/**
 * @author 黄衡熙
 * @version 1.0
 */
public class Test04_其他类型的转换 {
    public static void main(String[] args) {
        System.out.println("***********************将字符串转换成char数组***********************");
        //通过toCharArray
        String s = "Hello World";
        // 转换成char数组
        char[] cs = s.toCharArray();
        System.out.println(Arrays.toString(cs));

        System.out.println("***********************将char数组转换成字符串***********************");
        //直接new传参
        char[] cs2 = {'H', 'e', 'l', 'l', 'o', ' ', 'a', 'd', 'm', 'i', 'n'};
        String s2 = new String(cs2);
        System.out.println(s2);

        System.out.println("***********************将字符串转换成byte数组***********************");
        ///getBytes
        String s3 = "Hello World";
        // 其结果的本质是每一个字符的ASCII码
        byte[] bs = s3.getBytes();
        System.out.println(Arrays.toString(bs));

        System.out.println("***********************将byte数组转换成字符串***********************");
        //直接new传参
        String s4 = new String(bs);
        System.out.println(s4);

        System.out.println("***********************将字符串转换成int类型parse方法***********************");
        // 对于字符串转换成int,此时的字符串必须是纯数字
        // 如果字符串不是纯数字,会抛出NumberFormatException异常
        // 表示当前数字格式有误
        String s5 = "Hello";
        // 也不能是小数
        s5 = "123.45";
        // 只能是纯数字
        s5 = "123";
        int i = Integer.parseInt(s5);
        System.out.println(i);

        System.out.println("***********************将int类型转换成字符串***********************");
        int i2 = 12345;
        String s6 = i2 + "";
        System.out.println(s6);

        s6 = String.valueOf(i2);
        System.out.println(s6);

        System.out.println("***********************将字符串转换成double类型parse方法***********************");
        // 此时的字符串必须符合double类型数据的格式
        // 不能包含字母
//        String s7 = "hello";
        // 不能超过一个小数点
//        String s7 = "123.45.67";
        // 符合double格式
        String s7 = "123.45";
        double d = Double.parseDouble(s7);
        System.out.println(d);

        System.out.println("***********************将double类型转换成字符串***********************");
        double d2 = 123.45;
        String s8 = d2 + "";
        System.out.println(s8);
        s8 = String.valueOf(d2);
        System.out.println(s8);
    }
}
